Ext.define('aps.reordenarFasePanel', {
    extend: 'Ext.form.Panel',
    alias : 'aps.reordenarFasePanel',

    title :   'Reordenar Fase',
    id:       'panel_reordenar_fase',
    name:     'panel_reordenar_fase',
    layout:   'fit',
    frame:    true,
    closable: true,
    border:   false,
  
    initComponent: function() {
        var grid_fases_reordenar = Ext.create('aps.faseGridReordenar' ,{
            id: 'faseGridReordenar',
            margin:    '20 0 0 0'
        });
        grid_fases_reordenar.store.load({
            params: {
                id_proyecto : Ext.getCmp('combo-proyecto').valueModels[0].data.idproyecto
            }
        });
        this.items = [{
            xtype:      'form',
            title:      'Reordenar fases',
            autoScroll: true,
            fieldDefaults: {
                blankText:     'Este campo no puede ser nulo',
                msgTarget:     'side',
                autoFitErrors: false
            },
            items: [{
                    xtype:     'label',
                    style:     'font-weight:bold;',
                    text:      'Modifique el orden de las fases como desee, haciendo click en la celda del orden',
                    margin:    '5 20 20 20',
                },
                    grid_fases_reordenar
            ]
        }];
        this.buttons =[{
            text:     'Guardar',
            iconCls:  'save-icon',
            grid:     grid_fases_reordenar,
            handler:  this.form_submit_handler
        }, {
            text:    'Cancelar',
            iconCls: 'cancel-icon',            
            handler: this.form_cancel_handler
        }];
        this.listeners = {
             close : function(){
                // actualizamos el store
                Ext.StoreMgr.lookup('faseStore').load({
                    params: {
                        id_proyecto : Ext.getCmp('combo-proyecto').valueModels[0].data.idproyecto
                    }
                });
                // volvemos al panel de administracion
                Ext.getCmp('area-central').agregar_pestanha('panel_administrar_fase', null);
            }
        };
        
        this.callParent(arguments);
    },
    
    form_submit_handler: function(){
        var records = this.grid.store.getUpdatedRecords( );
        if(records == null || records.length == 0){
            Ext.Msg.alert('ERROR','No ha modificado el orden de ninguna fase');
        }
        else{
            var id_proyecto =Ext.getCmp('combo-proyecto').valueModels[0].data.idproyecto;
            var idfases = [];
            var orden = [];
            for(var i=0;i<records.length;i++){
                idfases.push(records[i].data.id);
                orden.push(records[i].data.orden);
            }
            var post = {'id_proyecto': id_proyecto, 'idfases': idfases, 'orden': orden}
            var self = this;
            var form = self.up('form').getForm();
            if(form.isValid()){
                form.submit({
                    method:    'POST',
                    url:       '/reordenar_fase',
                    params: {data : Ext.encode(post)},
                    waitTitle: 'Connecting', 
                    waitMsg:   'Sending data...',
                    success: function(form,action){
                        Ext.Msg.alert('INFO','Fases reordenadas!', function(btn, text){                            
                            if (btn == 'ok'){    
                                self.up('panel').close();
                            }
                        });
                    },
                    failure: function(form, action){
                        Ext.Msg.alert('ERROR','Ocurrio un problema al reordenar las fases!');
                    }
                });
            }
         }   
    },
    form_cancel_handler: function() {
        this.up('panel').close();
    }
});





